Medical images can be communicated between computers using a network protocol standard named Digital Imaging and Communications in Medicine (DICOM). The DICOM network protocol was created to aid the distribution and viewing of medical images and objects such as EKG waveforms, computed tomography (CT), magnetic resonance (MR), and ultrasound.
The DICOM network protocol defines a format used to store, receive, and transmit digital image data and objects. The DICOM object format typically contains a header and image data. The header contains information about the patient's name, type of medical procedure or scan, image dimensions, etc. For example, a DICOM image file includes a header which contains data that describe the physical dimensions of a medical image. The header can also include data that contains textual information about a scan contained in the image. The size of a header may vary depending upon the amount of information that is stored in the image. The data in a header can be organized as one or more groups. One group may be a meta file information group which defines one or more data elements such as a group length, a file version, and a transfer syntax. The number of data elements depends upon the image type and the characteristics of the particular image type.
Object data typically follows the header data. The object data can have data elements which define characteristics of the particular object type and the object data associated with the particular object type. The object data can include information obtained in a medical scan performed in two and/or three dimensions. For example, a magnetic resonance image (MRI) may have DICOM image data that includes a data element that specifically defines the MRI echo time. Furthermore, image data may be compressed or encapsulated to reduce the image file size.
Most DICOM data elements are small and bounded in size by the type of data that they can contain. For example, integer data elements may only contain a few integers. These data elements are always relatively small and do not have a significant or large impact on the performance and scalability of a network because of their relatively small size. Other types of DICOM data elements such as image data can be relatively large in comparison. Two types of DICOM data elements warrant special attention since they can be large: sequences and pixel data. Sequences in DICOM are a type of data element that can recursively contain other data sets. Since they can contain other data sets, they could potentially be relatively large if they contain a very large number of small data elements, or if they contain pixel data. Pixel data is a type of data element that corresponds to actual image data. Pixel data is a type of data element that can be relatively large, and in some cases, extremely large. In cases where a very large data set is being communicated, almost all of the bytes in the data set may be pixel data. Most other types of data elements communicate information about the image (metadata) such as the patient name, type of image, and image date and time.
DICOM communicates by transmitting data sets. A data set is an ordered set of data elements, such as sequence data, pixel data, or other types of data. Each data element represents information that is being communicated. Each data element has a particular type, and can vary in size depending upon the data element type. For example, by way of illustration of the different range in the size of an image file, the file size of a DICOM image can range from approximately 128 kilobytes (KB) for a single DICOM image, or up to approximately 600 megabytes (MB) for a time-sequence or multi-frame DICOM image.
DICOM data sets are communicated using one or more transfer syntaxes. A transfer syntax specifies a type of encoding of the data for the particular data set. The DICOM network protocol can support at least three types of transfer syntax: little endian explicit value representation, little endian implicit value representation, and big endian explicit value representation.
A unique feature of DICOM network protocol allows data to be transformed into a different form when transported. This unique feature of DICOM data transformation during the transmission of DICOM images over a conventional DICOM network creates a relatively large demand for the memory resources in a DICOM network.
The DICOM network protocol consists of multiple layers. The DICOM network protocol can also be built on top of a standard TCP/IP protocol. When transmitting data over a communications network, the DICOM protocol breaks a data set into one or more data packets before sending it across the network. Each data packet defines one or more protocol data units (PDUs). If an underlying protocol layer transforms the data into data packets, as in TCP/IP protocol, the DICOM protocol requires that the data sets being communicated across the network also be packaged as protocol data units (PDUs). For example, when the DICOM network protocol runs on top of the TCP/IP protocol, this effectively double packetizes the data. That is, DICOM packages the data sets as protocol data units (PDUs) and TCP/IP packages the data sets as data packets. This type of DICOM/TCP/IP layered protocol structure creates a relatively large demand for memory resources in a conventional DICOM network. Moreover, the transmission of DICOM images through multiple layers of the DICOM network protocol can also create a relatively large demand for memory resources in a conventional DICOM network.
The DICOM protocol follows a strict order for establishing and maintaining communications. A state machine operated by the Upper Service Level layer of the DICOM protocol specifies a strict order for establishing and maintaining communications between two devices in a DICOM network. For example, since the DICOM protocol is connection oriented, no communication of DICOM data can occur until a DICOM association or connection has been established between two devices. That is, at least two DICOM protocol-based devices must be in communication with each other in order to establish a DICOM association or connection. After a DICOM association or connection has been established, communication must continue to follow a strict order, and then the DICOM association or connection must be closed in an orderly fashion. Such a strict order dictated by the DICOM network protocol can create a relatively large demand for memory resources in a conventional DICOM network.
Each DICOM association or connection can be used to perform DICOM data operations in the DICOM network. DICOM operations can be performed sequentially, or one after another, or concurrently. Concurrent operations are called asynchronous operations per association in DICOM. Conventional DICOM networks typically handle multiple concurrent or asynchronous operations involving DICOM data, and large DICOM file sizes can create a relatively large demand for memory resources in a conventional DICOM network.
The rapid handling of relatively large objects by conventional DICOM communication networks demands that DICOM protocol operations be performed in an efficient, high performance manner. Conventional DICOM communication networks suffer a significant drop in the speed and performance when handling relatively large DICOM object files. Since DICOM objects tend to be relatively large, communication of DICOM objects can quickly overwhelm a communications network that is not designed to accommodate such large image objects. Conventional DICOM communication networks rely upon servers to handle multiple and simultaneous DICOM operations. In cases where a single DICOM file or storage operation could consume a large portion of a server's resources such as a memory and processing time, a DICOM server may suffer from poor scalability and performance when handling such large objects. The network and server performance problems can worsen significantly when multiple clients attempt to simultaneously or concurrently use the network.
Therefore, there is a need for methods and apparatus for limiting the consumption of memory resources during the handling of DICOM objects in a network.
There is a further need for methods and apparatus for allowing one or more applications in a DICOM communications network to limit memory usage regardless of the size of DICOM objects to be communicated in the network.
There is a further need for improved methods and apparatus for transmitting digital data between two devices in a communications network.
There is a further need for improved methods and apparatus for transmitting DICOM objects in a network while maintaining or improving the performance of one or more applications operating in the network.
There is a further need for methods and apparatus for streaming DICOM objects in a network through a data element source and data element sink.